package com.fa4j.product.stock.service;

import com.fa4j.product.stock.model.*;
import jakarta.validation.Valid;

import java.util.List;

public interface StockService {

    /**
     * 保存库存
     *
     * @param cmd 参数
     */
    void saveStock(@Valid StockSaveCmd cmd);


    /**
     * 锁定订单库存
     *
     * @param cmd 参数
     */
    List<StockOrderLockItem> lockOrderStock(@Valid StockOrderLockCmd cmd);

    /**
     * 出库订单库存
     *
     * @param cmd 参数
     */
    void outOrderStock(@Valid StockOrderOutCmd cmd);

    /**
     * 取消订单库存
     *
     * @param cmd 参数
     */
    void cancelOrderStock(@Valid StockOrderCancelCmd cmd);

}
